package com.fh.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fh.bean.*;

import java.util.List;


/**
* @author Administrator
* @description 针对表【student】的数据库操作Service
* @createDate 2024-03-22 11:02:13
*/
public interface StudentService extends IService<Student> {

    /**
     * 查询"01"课程比"02"课程成绩高的学生的信息及课程分数
     * @return
     */
    List<Student> queryCourseGrade();

    /**
     * 查询成绩01课程小于02课程接口
     * @return
     */
    List<Student> queryCourseGradeSmall();

    /**
     * 查询平均成绩大于60
     * @return
     */
    List<StudentAvgGradeBean> queryAvgGradeBigSixty();

    /**
     * 查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的)
     */
    List<StudentAvgGradeBean> queryAvgGradeSmallSixty();

    /**
     * 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩
     */
    List<StudentGradeCourseBean> queryStudentSumGrade();

    /**
     * 6、查询"李"姓老师的数量
     */
    Long queryLiCount();

    /**
     * 询学过"张三"老师授课的同学的信息
     */
    List<Student> queryStudyZsStudent();

    /**
     * 查询没学过"张三"老师授课的同学的信息
     */
    List<Student> queryNotStudyZsStudent();

    /**
     * 查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息
     */
    List<Student> queryStudyZeroOneAndTwo();

    /**
     * 查询学过编号为"01"但是没有学过编号为"02"的课程的同学的信息
     * @return
     */
    List<Student> queryStudyZeroOneAndNotTwo();

    /**
     * 13、查询和"01"号的同学学习的课程完全相同的其他同学的信息
     */
    List<Student> queryZeroOneDiscipline();

    /**
     * 查询没学过"张三"老师讲授的任一门课程的学生姓名
     */
    List<String> queryNotStudyZs();


    /**
     * 查询两门及其以上不及格课程的同学的学号，姓名及其平均成绩
     */
    List<StudentAvgGradeBean> queryNotTwoPass();

    /**
     * 检索"01"课程分数小于60，按分数降序排列的学生信息
     * @return
     */
    List<GradePass> queryGradePassSixty();

    /**
     * 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
     */
    List<GradeCourse> queryAvgMark();

    /**
     * 19、按各科成绩进行排序，并显示排名
     */
    List<EachGrade> queryEachGrade();

}
